/* DBehandlung.java
 *
 * Author:	Malcolm Staudacher
 * Date:	May 26, 2008
 *
 */
package ocumed.domaene.behandlung;

import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;

import ocumed.domaene.benutzerverwaltung.arztverwaltung.DArzt;
import ocumed.domaene.patientenverwaltung.DPatient;
import ocumed.persistenz.hibernate.OcPatient;
import ocumed.teams.IArzt;
import ocumed.teams.IBehandlung;
import ocumed.teams.IBenutzer;
import ocumed.teams.IMediver;
import ocumed.teams.IPatient;
import ocumed.teams.IPosition;
import ocumed.teams.IRezept;

public class DBehandlung implements IBehandlung {

	private int behandlungid;
	private IArzt arzt;
	private IPatient patient;
	private Calendar behandlungvon;
	private Calendar behandlungbis;
	private String behandlungdiagnose;
	private Character behandlungmitueberweisung;
	private Character behandlungmitverschein;
	private Character behandlungmitterminvermerk;
	private char behandlungstatus;
	private Set<IRezept> rezepts;
	private Set<IPosition> positions;


	public DBehandlung(int behandlungid, IArzt benutzer,
			Calendar behandlungvon, Calendar behandlungbis,
			String behandlungdiagnose, Character behandlungmitueberweisung,
			Character behandlungmitverschein,
			Character behandlungmitterminvermerk, char behandlungstatus) {
		this.behandlungid = behandlungid;
		this.arzt = benutzer;
		this.behandlungvon = behandlungvon;
		this.behandlungbis = behandlungbis;
		this.behandlungdiagnose = behandlungdiagnose;
		this.behandlungmitueberweisung = behandlungmitueberweisung;
		this.behandlungmitverschein = behandlungmitverschein;
		this.behandlungmitterminvermerk = behandlungmitterminvermerk;
		this.behandlungstatus = behandlungstatus;
		this.positions = new HashSet<IPosition>();
		this.rezepts = new HashSet<IRezept>();
	}


	public DBehandlung(IArzt iArzt) {
		this.arzt = iArzt;
		this.positions = new HashSet<IPosition>();
		this.rezepts = new HashSet<IRezept>();
		this.behandlungvon = Calendar.getInstance();
	}


	public DBehandlung(IArzt arzt, DPatient patient) {
		this.arzt = arzt;
		this.patient = patient;
		this.positions = new HashSet<IPosition>();
		this.rezepts = new HashSet<IRezept>();
		this.behandlungvon = Calendar.getInstance();
	}


	public int getBehandlungid() {
		return behandlungid;
	}


	public void setBehandlungid(int behandlungid) {
		this.behandlungid = behandlungid;
	}


	public IArzt getiArzt() {
		return arzt;
	}


	public void setiArzt(IArzt a) {
		this.arzt = a;
	}


	public IPatient getiPatient() {
		return patient;
	}


	public void setiPatient(IPatient patient) {
		this.patient = patient;
	}


	public Date getBehandlungvon() {
		return behandlungvon.getTime();
	}


	public void setBehandlungvon(Date behandlungvon) {
		this.behandlungvon.setTime(behandlungvon);
	}


	public Date getBehandlungbis() {
		return behandlungbis.getTime();
	}


	public void setBehandlungbis(Date behandlungbis) {
		
		if (this.behandlungbis == null) {
			this.behandlungbis = Calendar.getInstance();
		}
		
		this.behandlungbis.setTime(behandlungbis);
	}


	public String getBehandlungdiagnose() {
		return behandlungdiagnose;
	}


	public void setBehandlungdiagnose(String behandlungdiagnose) {
		this.behandlungdiagnose = behandlungdiagnose;
	}


	public Character getBehandlungmitueberweisung() {
		return behandlungmitueberweisung;
	}


	public void setBehandlungmitueberweisung(Character behandlungmitueberweisung) {
		this.behandlungmitueberweisung = behandlungmitueberweisung;
	}


	public Character getBehandlungmitverschein() {
		return behandlungmitverschein;
	}


	public void setBehandlungmitverschein(Character behandlungmitverschein) {
		this.behandlungmitverschein = behandlungmitverschein;
	}


	public Character getBehandlungmitterminvermerk() {
		return behandlungmitterminvermerk;
	}


	public void setBehandlungmitterminvermerk(
			Character behandlungmitterminvermerk) {
		this.behandlungmitterminvermerk = behandlungmitterminvermerk;
	}


	public char getBehandlungstatus() {
		return behandlungstatus;
	}


	public void setBehandlungstatus(char behandlungstatus) {
		this.behandlungstatus = behandlungstatus;
	}


	public Set<IRezept> getiRezepts() {
		return rezepts;
	}


	public void setiRezepts(Set<IRezept> rezepts) {
		this.rezepts = rezepts;
	}


	public Set<IPosition> getiPositions() {
		return positions;
	}


	public void setiPositions(Set<IPosition> positions) {
		this.positions = positions;
	}


	/**
	 * override
	 *
	 * @see ocumed.teams.IBehandlung#addPosition(ocumed.teams.IPosition)
	 */
	public void addPosition(IPosition position) {
		positions.add(position);
	}


	/**
	 * override
	 *
	 * @see ocumed.teams.IBehandlung#addiRezept(ocumed.teams.IRezept)
	 */
	public void addiRezept(IRezept rezept) {
		rezepts.add(rezept);
	}



	/**
	 * override
	 *
	 * @see ocumed.teams.IBehandlung#createPosition()
	 */
	public IPosition createPosition() {
		return new DPosition(this);
	}


	/**
	 * override
	 *
	 * @see ocumed.teams.IBehandlung#createiRezept()
	 */
	public IRezept createiRezept() {
		// TODO Auto-generated method stub
		return null;
	}


	@Override
	public IPosition getiPosition(int id) {
		// TODO Auto-generated method stub
		return null;
	}

}
